'''
爬虫的公共模块
1、爬虫的地址
2、数据的一些初始化操作
3、公共的爬虫工具
'''
# 操作os文件
import os
import csv
import time
import hashlib

# 创建一个工具类
class PublicSiderTools:
    # 构造方法,初始化的方法
    def __init__(self):
        # 获取歌单类型的URL
        self.song_sheet_type = 'https://music.91q.com/v1/tracklist/list'
        # 初始化两个参数
        self.appid = '16073360'
        # 加密的密钥
        self.secret = '0b50b02fd0d73a9c4c8c3a781c30845f'

    # 创建一个csv文件，并且生成一个列名
    def create_song_sheet_type(self):
        # 如果这个文件不存在
        if not os.path.exists("song_sheet_type.csv"):
            with open('song_sheet_type.csv', 'w', newline='', encoding='utf-8') as csvFile:
                write = csv.writer(csvFile)
                write.writerow([
                    'id',
                    'img',
                    'title',
                    'desc',
                    'taglist',
                    'type',
                    'musicNum',
                    'createTime'
                ])
    # 填充数据的方法
    def init_song_sheet_data(self,data):
        print("初始化歌曲订单类型,a追加的意思 覆盖，追加")
        with open('song_sheet_type.csv', 'a', newline='', encoding='utf-8') as file:
            writer = csv.writer(file)
            writer.writerows(data)
    # md5
    def mdEncode(self,str):
        md5 = hashlib.md5()
        # 增量计算哈希值：适用于大文件或网络流数据，避免内存不足。
        # 多次调用：可以多次调用 update() 追加数据，最终生成统一的 MD5 值。
        md5.update(str.encode('utf-8'))
        return md5.hexdigest()

    # 时间厝
    def getTimeStamp(self):
        return int(time.time())


if __name__ == '__main__':
    publicObj = PublicSiderTools()
    publicObj.create_song_sheet_type()






